from skimage import data,color
import numpy as np
from matplotlib import pyplot as plt
img = data.coffee()
img1=img
img=color.rgb2gray(img)
#在x方向实现傅里叶变换
m,n=img.shape
fx=img
for x in range(n):
    fx[:,x]=np.fft.fft(img[:,x])
for y in range(m):
    fx[y,:]=np.fft.fft(img[y,:])
fshift = np.fft.fftshift(fx) # 默认结果中心点位置是在左上角，转移到中间位置
fimg = np.log(np.abs(fshift)) # fft 结果是复数，求绝对值结果才是振幅
# 展示结果
plt.subplot(121), plt.imshow(img1, 'gray'), plt.title('Original')
plt.subplot(122), plt.imshow(fimg, 'gray'), plt.title('Fourier')
plt.show()
